<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <script>
    // 日期对象声明
    // 1、没传入参数，默认当前系统时间
    // 2、传入参数
    //     - "2021-10-04"
    //     - "2021-10-04 08:00:00"
    //     - "2021/10/04"
    //     - "2021/10/04 08:00:00"
    //     - 按照顺序，分别传入参数：年，月，时，分，秒（月：0~11）
    //     - 直接传入毫秒数
    var d = new Date();
    var d = new Date("2021-10-04");
    var d = new Date("2021/10/04");
    var d = new Date(2022, 2, 3, 4, 22, 4);
    var d = new Date(1000);
    // console.log(d);

    // 日期对象格式化
    function formatDate(date, fmt) {
      if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
      }
      let o = {
        'M+': date.getMonth() + 1,
        'd+': date.getDate(),
        'h+': date.getHours(),
        'm+': date.getMinutes(),
        's+': date.getSeconds()
      };
      for (let k in o) {
        if (new RegExp(`(${k})`).test(fmt)) {
          let str = o[k] + '';
          fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
        }
      }
      return fmt;
    };

    function padLeftZero(str) {
      return ('00' + str).substr(str.length);
    };

    // formatDate函数测试
    var test = formatDate((new Date()), "yyyy-MM-dd hh:mm:ss");
    // console.log(test);

    // 日期对象的方法
    var d = new Date()
    // 获取时间戳(以1970 01-01 08:00:00为起点，以下获取的时间戳为 毫秒 级别)
    console.log(Date.parse(d));
    console.log(d.getTime());
    // 二者的区别在于，getTime()的时间戳获取更加精确

    // 获取当前时间多 X 天，多加 X 分钟等
    // 当前时间多加一天
    var d = new Date()
    d.setDate(d.getDate() + 1)
    console.log(d);
    // 当前时间多加半个小时
    var d = new Date()
    d.setTime(d.getTime() + 1000 * 60 * 30)
    console.log(d);
  </script>
</body>

</html>